package myzd.services;

import libedge.domain.exceptions.GenericException;
import myzd.api.domain.ListResult;
import myzd.api.domain.PagedResult;
import myzd.api.domain.TreeResult;
import myzd.domain.enums.ServiceTypeList;
import myzd.domain.response.*;

public interface DoctorKbService {
  PagedResult<Hospital> searchHospitalByName(String hospitalName, Integer page, Integer pageSize) throws GenericException;

  PagedResult<Disease> searchDiseaseByDiseaseName(String diseaseName, Integer page, Integer pageSize) throws GenericException;

  PagedResult<DoctorDetailsDto> searchDoctors(String name, String hospitalName, String diseaseName, Integer parentCategoryId,
                                              Integer categoryId, Integer cityId, ServiceTypeList serviceType, Integer page, Integer pageSize) throws GenericException;

  PagedResult<City> searchCity(Integer provinceId, String cityName, Integer isCapitalOrder) throws GenericException;

  PagedResult<Province> searchProvinceList(String initial) throws GenericException;

  ListResult<TreeResult<DiseaseCategory>> searchAllDiseaseCategory() throws GenericException;

  PagedResult<Counties> searchCounties(Integer cityId) throws GenericException;

  PagedResult<Provinces> searchProvinceListByDesignatedCity(String initial) throws GenericException;

}
